bootstrapped with an initial channel known as the system channel.

Orderers maintain a list of organizations or the consortium that can

create the channels. The orderer service can configure the orderer

nodes in three different ways, i.e. Solo, Kafka, and Raft.

13.1.7.1 Solo

Solo was the default configuration with just one orderer node, ideal

for development and testing, butit was deprecated in version 2.x.

13.1.7.2 Apache Kafka

Kafka was introduced with the Fabric version 1.0 and was supported

till version 2.x, post which, it was deprecated as well for its

associated difficulties and need for high expertise in administration.

13.1.7.3 Raft

Raft is the latest addition that follows a leader and follower model to

choose a leader node per channel to take the decisions that would

be replicated to the other nodes. It’s much simpler and easier to

work with and needs less expertise than Kafka.

13.1.8 Smart Contract (Chaincode)

Just like any other Blockchain or DLT, Fabric too has its own smart

contract that defines the rules against which the transactions are

validated before getting endorsed and committed to a ledger. Hence,

every smart contract is associated with an endorsement policy that

finds out the organization that must approve the transactions before

they are considered valid.

Once the smart contract is packaged, it is called Chaincode that has

to be deployed to the Blockchain network.

13.2 Consensus and Fabric End-To-End

Transaction Flow